12-20 微信商学院-开发者培训班
小程序是什么
- https://mp.weixin.qq.com/
- 开发者社区 http://developers.weixin.qq.com/
- 一种连接用户和服务的方式
- 一个全新的生态
- 一套解决方案
- AppService 应用逻辑层,实现交互和业务逻辑处理,生命周期管理
- JSBrigdge
小程序的优点
- 不是H5(算是类web应用,基于H5开发但是可以调用微信native API,缺点是不能对API进行定制)
- 基于微信
- 原生体验
- 解决方案
- 即用即走,随手可得
- 拥有离线能力
- 一次开发,多端兼容
- 优秀的操作系统
- 在安卓上的适配是最优的
小程序的接入流程
注册->开发->提交审核->发布
邮箱不能注册过其他组件(公众号,企业号等)
- 只有管理员才能上传代码
- 公测期间不支持发布
- 不能做营销和游戏
- 不做收集用户隐私的接口
- 便捷:尽量减少输入,避免误操作
- 统一:视觉统一,WeUI(可以根据它来调整,由自己的品牌来定制)
- 审核规范:判断原则
- 真实性,一致性(信息一一对应),稳定性,合法性
- 常见拒绝原因:demo版本或trial版本,或仍存在bug
- 提供的服务属于暂未开放的服务范围
- 名称,简介,logo,服务范围没有对应关系
- 单页面应用 Single Page Application
- 动态加载
- Framework Overview
- 10M稳定存储能力,
- jssdk ->小程序的API
- API 拥有调取Native 系统层能力
- Page Frame
- 预先加载一个web view
- 当打开指定页面时,无需请求额外资源,直接渲染
- init–>ready–>nav–>ready->(从右边)push(100-200ms)(开发者最好自己也做一些点击态)
- App Service -Manager
- App() 小程序入口
- Page() 页面入口
- App Service -Life Cycle
- Native加载两个线程 (view, App Service)
- redirect (越过5层页面层级限制)
- App Service -API
- 通过JSbridge同客户端通信
- 用户信息,微信支付,模版消息,网络通信,本地存储等等
- View - Hybrid 混合应用
- 凌驾于web view
- web-like 开发方式
- App-like 用户体验
- View -WXML
- 支持逻辑,算数计算
- 支持模版,引用
- (WXML)compiler–>(JS:generateFunc)date–>(Virtual Tree)Virtual DOM–>(View DOM)
- View -WXSS
- 自适应单位RPX- Responsive Pixel
- 无级联(但是其实还是可以用的用)-避免被组件内结构破坏(最好别用)
- (WXSS)Compiler–>(JS)Width,DPR–>(CSS)
- View -Render
- 数据M 和视图V 完全分离
- 逻辑层运行在独立的环境中,无法直接操作DOM
- 使用WXML模版语言减少维护成本
- 单项数据绑定
Virtual-DOM
- 生成和DOM tree – 对应的Virtual Tree
- 对比新Tree和旧Tree的不同
- 将这些不同的点应用到DOM Tree中
- 动态改变的节点需要加上WX:key 来做节点的唯一标示
- wx:if,wx:for,template增加一个<virtual/>的节点
- diff
- native 凌驾于webview 有些webview层中的一些事件(比如滑动)不能在原生环境中监听
技术人员分享
- 单向数据流
- 局部化组件
- 不携带cookie
- globalData事件订阅
- 页面传值
- server层
- 1M限制(用图片替代代码来越过限制,不推荐)
- react与小程序语法替换关系
- state ==> data
- setState ==> setData
- array.map ==> war.map